#pragma once
#include "MessengerEventBase.h"
#include "Matrix44.h"


namespace Boon
{

	class BOON_API Event_GameObject_Moved : public MessengerEventBase
	{
	public:
		static const EventType			ID = 0xfedb89e1;
		~Event_GameObject_Moved(){}
		Event_GameObject_Moved( GameObjectID id );
		virtual const EventType			GetEventID() const;
		virtual void					Serialize( std::ostream& out ) const;
		virtual IMessengerEventStrong	Copy() const;
		virtual const char*				GetName() const;

		void							GetMatrix( Matrix44* const outToWorld, Matrix44* const outFromWorld ) const;
		const Matrix44&					GetMatrixToWorld() const;
		const Matrix44&					GetMatrixFromWorld() const;
		void							SetMatrix( const Matrix44* const toWorld, const Matrix44* const fromWorld );
		const GameObjectID				GetGameObjectID() const;

	private:
		Matrix44						m_MatFromW, m_MatToW;
		const GameObjectID				m_GameObjID;
	};

}
